AVS (Advanced Visualization Studio) is a highly versatile and easy-to-use visualization plugin for Winamp.  It is not limited to small tweaks by the user like most plugins - in fact, the actual visualizations are created by the user, with no knowledge of high level programming languages required.  There are literally thousands of "presets" for AVS out there - predefined lists of various effects that make a visualization.  To learn more, see the official AVS FAQ at: http://forums.winamp.com/showthread.php?threadid=82567

There are three major drawbacks to AVS: while it can do a lot of things very well, it is also very slow.  It must be viewed at a low resolution to get a reasonable framerate.  However, most AVSers don't consider this much of a problem - many of us are perfectly happy with 320x240 windows and 15+ frames per second.  Advanced coding is also a challenge because there is a very low limit on variables used.
Another very similar visualization plugin, called Milkdrop, does not have these problems; however it is also quite limited in comparison with AVS.  To learn more about Milkdrop, go here:

The reason for this is AVS has not been updated for a quite a long time - discluding two small updates (the second being a step back as far as the majority of the AVSing community is concerned) made in the last few months.  Thus AVS does not support any form of graphics acceleration, and does not rely on graphics cards.  AVS relies solely on RAM and CPU speed.
There is an AVS Wishlist forum, where you can request revisions or additions to later versions of AVS, but since the wishlist has been around for quite some time and it doesn't look like AVS is going to be updated anymore, it isn't in much use.  If you would like to post something, make sure you search the forums to see if your question has already been answered before you do so.


So, how do I use AVS anyway?  Installed with this tutorial is AVS v2.5.1, the second to last release of AVS.  AVS 2.6.0 is technically the current version, however it is less stable and not as user friendly as the earlier versions.  Open winamp, and press CTRL+K.  This will open the visualizations menu.  Scroll down to "Advanced Visualization Studio v2.5.1" and click on the "Start" button.  To select a preset from the drop-down menu, right-click on the AVS window and select the file you want.  (AVS only supports 1 subdirectory; that is, folders within folders within the AVS root folder will not show up.)  To open the configuration window, double-click on the AVS window.
In the config window there are two menus - Preset and Settings.  Preset is the same as the everyday "File" menu - Load/Save/New are pretty self explanatory.  WATCH OUT when you're saving a preset so that you don't hit "New" on accident - there is *no* warning dialogue.

Settings -> Display changes the Windowed settings.  "Wait for retrace" stops AVS from rendering frames in-between the frames that your computer monitor is displaying - this also stops AVS from "chopping" it's frames; that is, one frame being rendered at the top and another frame starting somewhere in the middle.  Most of the time this is not a big deal, and as it only slows AVS down it's not normally used.  "Pixel doubling" makes AVS render with half the height and width of the window.  Essentially it's just a halved (quartered, really) screen stretched to fit in the window.  Unless you are watching a large screen - large in AVS terms (600x800 and up) - or have a slow computer, or REALLY want a higher framerate, there's no point in using this as the only other thing it does is make AVS look ugly.  "Windowed performance" is a frame limiter - the farther to the left, the better AVS is, but it also degrades the efficiency of other programs, and can cause Winamp to skip (although with most modern computers with reasonable RAM this isn't a probem).  "Supress status/title text in windowed" stops Winamp from displaying AVS messages - like "double click for configuration" and the preset filename - and the current song title on play, respectively.  Overlay mode is a setting which stretches the AVS window to the screen (still rendering in the current windowsize) and renders it over pixels of a certain color.  So if you set that color to black, you could watch AVS through black text and black window borders.  "Set desktop to color" sets the desktop color - but not the background - to the selected color, until you turn off Overlay mode.  If you want to know more about Overlay mode, there are lots of threads in the AVS forums: http://forums.winamp.com/forumdisplay.php?forumid=85 - search there and you should find what you're looking for.  Render priority sets how "important" AVS's rendering is to the rest of the system - in other words, if the system runs low on resources, how well AVS will perform.

Settings -> Fullscreen changes the Fullscreen settings for AVS (surprised?).  "Use fullscreen overlay mode" enables the experimental (and buggy) fullscreen overlay mode setting.  I am not at all sure what this does because it does not work properly on my computer and I can't confirm anything.  If you can explain to me like i was a two year old what this function does, PLEASE email me at therealatero@hotmail.com.  Fullscreen video mode sets the fullscreen resolution and color depth; 32BPP is usually faster as AVS's graphics are all calculated at 32BPP internally, and clipping to 16BPP just slows things down; your graphics adapter will do that for you anyway.  The go button turns on fullscreen mode.  Vertical screen size sets the percentage of the screen height used in fulscreen mode.  Pixel doubling, wait for retrace, supress status/title text, and rendering performance are the same as in windowed mode; I reccommend pixel doubling for fullscreen simply because of how slow AVS is.  Display framerate counter lets you see the current framerate at fullscreen in the top left corner.  (I don't think there is a way to fix how it flickers; if you do, email me how).  I don't know what Fast software bpp conversion or Page flipping do - once again, if you do know, email me about it.
There are three ways to go to fullscreen mode.  Clicking on the go button in Settings -> Fullscreen will do it but it's cumbersome; you can rightclick the AVS window and select Fullscreen from the dropdown menu, and the fastest of the three is hitting the enter button while in Winamp.  To exit fullscreen, you can either leftclick or hit Escape or Enter.

Settings -> Presets/Hotkeys sets your preset hotkeys and also your random cycling options.  I never use hotkeys so I may be wrong on some of this, but I believe you select a hotkey from the dropdown menu, open the preset you want to save to that hotkey and click the "save to hotkey" button.  You can use F1 - F12, 0 - 9, and Shift+0 - Shift+9.  "Load from hotkey" should do the same thing as clicking the button - I see no real point in this, but okay....  The button below that selects the subdirectory to use for random cycling.  Once again, AVS only supports one subdirectory so if you want a more specific set then you'll have to put it in the main AVS directory.  "All" randomly selects an AVS file somewhere within the main AVS directory.  "Randomly switch presets" turns the random cycling on and off.
An odd bug is if you hit space, u or y and then an empty hotkey (a hotkey with no preset saved to it), AVS will open the preset and it will register on the bottom of the AVS dialogue with the filename, but the preset will be empty.  Not malicious in any way, but it's worth knowing about.  ...Well no it isn't but I felt like mentioning it here.

Settings -> Beat Detection lets you see the current beat detection data and set the beat detection options.  Standard mode simply registers a beat when AVS detects one, and is good for jazz, folk, new age, hiphop, and any other type of music that doesn't have a strong downbeat.  Advanced mode predicts the next beat based on Standard mode's data, and is good for dance, GOA, hard rock, DnB, and so forth.  Auto-keep saves the BPM settings of any given audio file and uses the preset BPM next time you open it.  Predict only if BPM has been found makes Advanced mode only kick in if it has gotten a good BPM reading.  "Reset" starts the BPM prediction over again.  New song applies to learning the BPM when a new track starts playing; you can start with the BPM of the previous song or you can reset it on play.

Settings -> Transitions applies to the transitions between presets when a new preset is loaded.  I believe pre-init starts rendering the preset for a couple seconds before it's actually loaded; I don't see any point in it as it only slows AVS down and is kind of obnoxious IMO, but to each his own.  Random and next/prev are the keyboard hotkeys (random also applies to the random cycling mode), load preset is loading a preset from the dropdown menu or from the File -> Load dialogue.  I don't know what low-priority pre-init does exactly, but I'm guessing it doesn't slow the current preset down as much while it's doing a pre-init.  Enable transition sets it up to use one of the transitions listed on any of the three different load types.  Keep rendering old effect keeps the preset you're transitioning out of rendering while you transition into the new one.  There are 14 distinct transition types - I won't bother explaining them here because they're fairly self explanatory.  The slider on the bottom sets the transition time in milliseconds (not frames).


Now that we're done with that, let's get on to making presets.  The left part of the AVS config screen is the preset editing window.  It shows the entire contents of a preset.  To look at the configuration dialogue of a component, click on it in the list.  Effect lists are basically just folders and you can open them the same way you would in a tree diagram in Windows; just click on the + sign next to it to expand it.  There are three buttons at the top of the window that say +, -, and x2.  To add a component click on + to bring down the list of components.  You'll learn more about the individual components as we move along.  To remove a component, click on it in the list then click -.  To make an exact copy of a component, click on it in the list and click x2.  To move a component up and down in the list just drag it up and down.  There's an extremely irritating bug that basically means you can never trust the edit list to register correctly - in other words it may show a component in one place when it's really in another.  A quick AVS restart will fix this however.
To add a component to an effect list, either drag it into the list or click on the effect list and add a component.  Unfortunately you cannot drag a component into an empty effect list, so you have to add a component to the list before you can do anything with it.
Once again: WATCH OUT when you're pushing these three buttons.  It's very easy to hit - instead of + or x2 by accident, and there is, once again, NO undo button in avs.  Another easy thing to do is to hit - when you have Main selected, which will delete your entire preset!


Now, let's make a preset.  Clear everything (select Main and then hit -), and add a Render / Moving Particle and a Trans / Fadeout.  You should see a dot moving around the screen leaving a trail.  Let's play with the dot a bit.  Click on the Moving Particle to bring up its configuration dialogue.  Move the slidebar that says "Distance from center" all the way to the left.  Now turn on "OnBeat size change" and move its slidebar a little over to the left (but not too far).  The dot should now be pulsating every beat.
Still a bit empty, isn't it?  Try clicking on the Moving Particle and pressing x2 seven times, to make seven more Moving Particles.
That's a bit better, but it's still not good yet.  Add an Effect List from the + menu.
!
But the trails went away (and so did the dots, depending on where the effect list went)!  Don't worry, this is normal, and you'll learn about it when you get to the Effect List in the tutorial.  Click on the Effect List and under Output, select "Maximum Blend", and everything should come back.  Now add a Trans / Blitter Feedback to the effect list (click on the effect list before you add it).  Move your Moving Particles into the effect list now, but leave the Fadeout where it is.  Add another Fadeout to the Effect List.  Now, select each of the Fadeouts and turn the slidebar down to a couple clicks away from the left side.  You should now have a smokey effect in the screen, making smooth white arcs.
Next, select the Blitter Feedback you just made in the Effect List.  Turn onbeat changes on and turn its slidebar a little bit further to the left.  Now turn on Blend Blitter.
But now you've lost those cool arcs for the most part, so go back and turn down the fadeouts a little bit more.  Make sure you don't turn the outer fadeout (the one that isn't in the effect list) all the way to the left or your screen will white out!
Now those white arcs should have gotten quite a bit smoother and it will pulsate on beat.  It's a bit of a mess, so go back into the effect list and select the top Moving Particle.  Press the - button 3 times.  (Careful you don't delete the effect list - that sort of thing can and will happen to you somewhere along the line.  Don't get mad, get even - tell the Winamp guys to update AVS with an undo button!)

Congratulations, you've made your first preset!  The completed preset is included in the tutorial as Example.avs.  Now, on with the tutorial!  Right click the AVS screen and select AVS Primer pt I - Overview from the list.  This is the folder for the first installment of AVS Primer.  Select the component you want to know more about, and read the comment included in the file.  Have fun AVSing!

--Atero




If there's anything you want to add, comment on or correct me on, or if you have any questions about the Primer, feel free to email me at therealatero@hotmail.com.